4. 数据安全:攻击 您所在的位置:网站首页 数据安全 图片 4. 数据安全:攻击

4. 数据安全:攻击

2024-07-13 04:54| 来源: 网络整理| 查看: 265

4.4.2. 深度伪造¶

深度人脸伪造特指基于深度学习技术生成的人脸伪造数据。在深度学习技术广为流行的今天,可以说任何人都可通过深度伪造软件轻松创建图像、视频或语音等伪造内容。当前,深度伪造最广泛使用的深度学习技术是生成对抗网络(GAN),未来还会包括扩散模型(diffusion model)等。

生成对抗网络的思想源于博弈论中的“零和博弈”(zero-sum game),其通过一个生成器 (generator)模型和一个判别器(discriminator)模型之间的相互博弈来学习真实数据分布,如图 图4.4.2 所示。其中,生成器基于随机噪声向量生成数据样本,让判别器无法区别样本的真实性;而判别器则尝试将生成器生成的样本判别为假样本。二者以这种对抗式的方式通过交替优化达到纳什均衡状态,此时生成器能够生成“以假乱真”的数据样本,使判别器无法判别真伪,即判断准确率相当于随机猜测。相比于其他生成模型,生成对抗网络具有一定的优势: 1)不依赖先验知识; 2)生成器的参数更新来自判别器的反向传播,而非直接来自于数据样本,故训练不需要复杂的马尔可夫链(Markov chain)。生成对抗网络在图像编辑、数据生成、恶意攻击检测、肿瘤识别和注意力预测等领域具有广泛应用,这里关注的是其在深度伪造方面的应用。

图4.4.2 生成对抗网络 (Goodfellow et al., 2014)¶

4.4.2.1. 人脸伪造¶

2017年,Korshunova等人 (Korshunova et al., 2017) 提出了一种基于GAN的自动化实时换脸(face swap)技术。同年,Suwajanakorn等人 (Suwajanakorn et al., 2017) 使用长短期记忆网络(long short-term memory,LSTM)设计了一种智能化学习口腔形状和声音之间关联性的方法,该方法仅通过音频即可生成对应的口部特征。研究者利用美国前总统奥巴马在互联网上的音视频片段,生成了非常逼真的假视频。此技术一经问世便引起了广泛关注,基于其原理实现的换脸项目也大量出现,极大的刺激了视觉深度伪造技术的发展。

视觉(主要是人脸)深度伪造技术的实现大体可分为数据收集、模型训练和伪造内容生成三个步骤。假设我们的目标是将Alice的脸换至Bob的身体上,可以通过以下的几个步骤进行实现。

(1)数据收集: 数据收集顾名思义就是通过各种渠道对Alice和Bob的已有图像进行大量收集,以便为模型训练提供数据支撑。对于公众人物来说,数据收集可以说是不费吹灰之力,因为他们有大量的演讲、报告、报道等数据公布在互联网上。注意这里收集的是人脸图像,所以很多时候需要使用人脸检测工具将人脸区域检测并截取出来。

(2)模型训练: 目前,针对人脸伪造的深度伪造模型主要基于自动编解码器,一般由编码器(encoder)和解码器(decoder)两部分构组成。 编码器用于提取人脸图像的潜在特征,解码器则用于重构人脸图像。为了实现换脸操作,模型需要两对编码器/解码器组(编码器A/解码器A、编码器B/解码器B),分别基于已收集的Alice和Bob的图像集进行训练,其中编码器A和编码器B具有相同的编码网络(即参数共享)。通过统一的编码器可以把Alice和Bob两个人的人脸特征编码到同一个隐式空间,只有在同一个隐式空间,二者的脸部特征才能发生互换。两套编解码器的训练过程如图 图4.4.3 (a)所示。

图4.4.3 深度伪造内容生成流程 (梁瑞刚 et al., 2020)¶

(3)伪造图像生成: 待模型训练完成之后,通过将Alice和Bob的解码器互换,进而构建新的编码器/解码器组(编码器A/解码器B,编码器B/解码器A),然后选取Alice的一张图像作为目标图像,在编码器A编码完成之后,基于解码器B进行解码,从而生成载有Bob面部、Alice身体的深度伪造(换脸)图像,如图 图4.4.3 (b)所示。

人脸伪造技术可以按照对人脸图像的修改程度分为两类:人脸互换(face swap)和面部重演(facial reenactment)。人脸互换的目标是用目标人物的脸替换原图像中的人脸,面部重演的目标是将源图像中人的表情转移到目标任务上。

总的来说这两类修改目标都可以基于自动编码器来完成,通过解耦人脸的身份与表情信息实现不同维度、不同层次的特征提取,并最终将输入的人脸扭曲后重建出伪造的人脸。通过引入生成对抗网络可以大幅提高替换后人脸的真实性,即添加一个判别器来判别生成图像和真实图像,强制解码器生成高度真实的换脸图像。

SimSwap人脸互换方法。人脸互换的方法有很多种,传统的人脸互换的方法如FaceSwap等,通常缺乏泛化性,无法保留面部表情和注视方向等属性、生成人脸图像质量差等问题。为了提高人脸互换的泛化性,Chen等人 (Chen et al., 2020) 提出了SimSwap框架以实现通用且高保真的面部交换。SimSwap的主要工作是:1)引入了身份注入模块,在特征层面将源脸的身份信息转移到了目标脸上,来将特定身份的人脸结构互换扩展到任意结构,解决了传统的方法需要预先进行面部关键点检测、姿态估计等处理的问题;2)提出弱特征匹配损失,得以隐式地、有效地保留面部属性,从而实现面部特征在互换的同时保持身份。通过以上方法,SimSwap能够用任意目标脸替换任意源脸,同时保留目标脸的面部身份特征属性,实现了将特定身份的人脸互换结构扩展到任意人脸互换。

具体而言,SimSwap中的编码器从目标图像中提取特征,身份注入模块将身份信息从源图像传输到特征中,解码器将修改后的特征恢复到结果图像中。SimSwap使用所设计的身份对应损失函数来保证生成图像与源图像具有相似身份结果。SimSwap使用弱特征匹配损失函数来确保网络可以保留目标人脸的属性,同时不会过多地损害身份修改性能。身份对应损失函数\(\mathcal{L}_{\text{id}}\)的定义如下:

(4.4.1)¶\[\mathcal{L}_{\text{id}}=1-\frac{ v_{s} \cdot v_{t}}{\left\| v_{s}\right\|_{2}\left\| v_{t}\right\|_{2}}.\]

身份对应损失函数\(\mathcal{L}_{\text{id}}\)定义了源身份向量\(v_{s}\)及目标身份向量\(v_{t}\)之间的余弦相似度。 弱特征损失函数\(\mathcal{L}_{\text{wFM}}\)的定义如下:

(4.4.2)¶\[\mathcal{L}_{\text{wFM}}=\sum_{i=m}^{M} \frac{1}{N_{i}}\left\|D^{(i)}\left( x_{s}\right)-D^{(i)}\left(x_{t}\right)\right\|_{1},\]

其中,\(D^{(i)}\)为判别器\(D\)第\(i\)层的特征提取器,\(N_{i}\)为第\(i\)层的元素个数。 弱特征匹配函数\(\mathcal{L}_{\text{wFM}}\)从第\(m\)层起计算目标图像\(x_{t}\)与源图像\(x_{s}\)之间的弱特征损失。由于使用了多个判别器\(D\),总的弱特征损失函数为:

(4.4.3)¶\[\mathcal{L}_{\text{wFM}_{-}\text{sum}}=\sum_{i=1}^{2} \mathcal{L}_{\text{wFM}}\left(D_{i}\right).\]

FaceShifter人脸互换方法。 而为了生成更加高质量的人脸图像,Li等人 (Li et al., 2020) 提出FaceShifter架构,通过两个网络,即AEI-Net(adaptive embedding integration network)用来进行面部交换和HEAR-Net(heuristic error acknowledging refinement network)用来处理遮挡。 用于脸部交换的网络AEI-Net由三个部分组成:1)身份编码器,采用预先训练好的人脸识别模型,提供抽象身份表征;2)一个多级属性编码器,对面部属性的特征进行分级和编码;3)AAD生成器(adaptive attentional denormalization),将身份和属性信息进行融合并生成伪造的人脸。而处理遮挡的网络HEAR-Net则以自监督的方式进行训练,它可以恢复异常(如遮挡)区域。通过这两个网络,可以实现对输入图像中的人脸自适应地调整网络架构,从而提高转换的精度和质量。FaceShifter的网络框架如图 图4.4.4 所示。

图4.4.4 FaceShifter框架 (Li et al., 2020)¶

具体来说,FaceShifter接收两张图片,源图片\(x_{s}\)用来提供身份,目标图片\(x_{t}\)用来提供姿势、表情、光照或是背景等属性。在第一阶段,AEI-Net中的三个组件被用来生成高保真的人脸:1)身份编码器\(z_{\text{id}}( x_{s})\)用来从源图片\(x_{s}\)提取身份特征;2)多层属性编码器\(z_{\text{att}}( x_{t})\)用来从目标图片\(x_{t}\)提取属性;3)AAD生成器用来交换面部。在第二阶段,HEAR-Net用来处理生成图像中可能出现的面部遮挡。其中,多层属性编码器还可进一步定义为:

(4.4.4)¶\[z_{\text{att}}\left( x_{t}\right)=\left\{ z_{\text{att}}^{1}\left( x_{t}\right), z_{\text{att}}^{2}\left( x_{t}\right), \ldots z_{\text{att}}^{n}\left( x_{t}\right)\right\},\]

其中,\(z_{\text{att}}^{k}( x_{t})\)代表第\(k\)层的特征图,\(n\)表示特征图的层数。这个多层属性编码器可以不需要任何属性标注,它通过自监督的方式来对属性进行提取。源图片\(x_{s}\)及目标图片\(x_{t}\)需要具有相同的属性嵌入。

AEI-Net中定义了多个损失函数。\(\mathcal{L}_{\text{adv}}\)是对抗损失函数,使生成的面部\(\hat{Y}_{s,t}\)更加逼真;\(\mathcal{L}_{\text{id}}\)作为身份保存损失函数,运用了余弦相似度来对源图像的信息进行保存,其定义如下:

(4.4.5)¶\[\mathcal{L}_{id}=1-\cos \left( z_{id}\left(\hat{Y}_{s,t}\right), z_{id}\left( x_{s}\right)\right).\]

多层属性编码器的损失函数\(\mathcal{L}_{\text{att}}\)用来计算目标图片\(x_{t}\)与生成的面部\(\hat{Y}_{s,t}\)间的\(L_2\)距离,其定义如下:

(4.4.6)¶\[\mathcal{L}_{\text{att}}=\frac{1}{2} \sum_{k=1}^{n}\left\| z_{\text{att}}^{k}\left(\hat{Y}_{s, t}\right)- z_{\text{att}}^{k}\left( x_{t}\right)\right\|_{2}^{2}.\]

当训练样本中的目标图片\(x_{t}\)和源图像\(x_{s}\)相同时,采用重建损失函数\(\mathcal{L}_{\text{rec}}\)来在像素层面计算目标图像\(x_{t}\)和生成的面部\(\hat{Y}_{s,t}\)的\(L_2\)距离,其定义如下:

(4.4.7)¶\[\begin{split}\mathcal{L}_{\text {rec}}=\left\{\begin{array}{ll}\frac{1}{2}\left\|\hat{Y}_{s, t}- x_{t}\right\|_{2}^{2} \qquad \text { if } x_{t}= x_{s} \\0 \qquad \text { otherwise }.\end{array} \right.\end{split}\]

AEI-Net的总的损失函数\(\mathcal{L}_{\text{AEI-Net}}\)可由上述损失函数加权定义如下:

(4.4.8)¶\[\mathcal{L}_{\text {AEI-Net }}=\mathcal{L}_{\text{adv}}+\lambda_{\text{att}} \mathcal{L}_{\text{att}}+\lambda_{\text{id}} \mathcal{L}_{\text{id}}+\lambda_{\text {rec}} \mathcal{L}_{\text {rec}},\]

其中,\(\lambda_{\text{att}}=\lambda_{\text{rec}}=10\),\(\lambda_{\text{id}}\)=5。

在第二阶段,HEAR-Net用以处理面部遮挡。它首先对目标图片可能产生的异常进行了定义:

(4.4.9)¶\[\Delta Y_{t}= x_{t}-\text{AEI-Net}\left( x_{t}, x_{t}\right).\]

随后将产生的异常\(\Delta Y_{t}\)及第一阶段生成的面部结果\(\hat{Y}_{s,t}\)送入一个U-Net结构中,来获得调整后的图像\(Y_{s,t}\)。HEAR-Net可以以全监督的方式进行训练,损失函数包括:身份保存损失函数、更改损失函数和重建损失函数。

身份保存损失函数\(\mathcal{L}_{\text{id}}^{\prime}\)与第一阶段所使用的类似:

(4.4.10)¶\[\mathcal{L}_{\text{id}}^{\prime}=1-\cos \left( z_{\text{id}}\left(Y_{s, t}\right), z_{\text{id}}\left( x_{s}\right)\right).\]

更改损失函数\(\mathcal{L}_{chg}^{\prime}\)用来保证第一阶段与第二阶段生成结果间的连续性:

(4.4.11)¶\[\mathcal{L}_{\text{chg}}^{\prime}=\left|\hat{Y}_{s, t}-Y_{s, t}\right|.\]

重建损失函数\(\mathcal{L}_{\text{rec}}^{\prime}\)用来限制第二阶段在源图像和目标图像相同时仍然能完成重建:

(4.4.12)¶\[\begin{split}\mathcal{L}_{\text{rec}}^{\prime}=\left\{\begin{array}{ll}\frac{1}{2}\left\|Y_{s, t}- x_{t}\right\|_{2}^{2} \qquad \text { if } x_{t}= x_{s} \\0 \qquad \text { otherwise }.\end{array}\right.\end{split}\]

最终HEAR-Net总的损失函数为上述损失函数之和:

(4.4.13)¶\[\mathcal{L}_{\text{HEAR-Net}}=\mathcal{L}_{\text{rec}}^{\prime }+\mathcal{L}_{\text{id}}^{\prime }+\mathcal{L}_{\text{chg}}^{\prime }\]

通过AEI-Net及HEAR-Net,Faceshifter能够实现高保真和遮挡感知的面部交换,通过自监督的方式对HEAR-Net方式进行训练,可以无需任何手动的标注便实现对一场区域的恢复。

人脸重演。通常的人脸重演步骤是(1)人脸追踪(face tracking),(2)人脸匹配(face matching)和(3)人脸迁移(face transfer),逐步将所提供的人脸迁移到目标人物的身上。早在2014年,Garrido等人 (Garrido et al., 2014) 就提出了一个自动化的人脸互换和重演框架,作者通过上述步骤将自己的面部替换到了美国前总统奥巴马的演讲视频中,并完成了奥巴马演讲表情的重演。虽然研究者自己的表情跟演讲并不完全对应,但此工作实现了面部替换和重演的全部自动化,并且只需要用户随意录制一个短视频即可,不需要做跟目标视频中一样的面部表情。

除了传统的神经网络之外,3D生成技术也被运用来生成更真实合理的人像,Sun等人 (Sun et al., 2022) 提出的FENeRF即是一个3D感知生成器,它可以生成视图一致的本地可编辑的面部图像。FENeRF的核心部分包括:(1)使用两个解耦的编码,在同一个3D空间中,分别生成对应的面部语义信息和纹理;(2)通过这种底层3D表达,渲染出没有裁切边界的图像和语义掩码,并使用语义掩码通过生成对抗网络来编辑3D信息。上述的步骤可以帮助FENeRF生成更加精细的图像。

与传统的面部重演不同,Song等人 (Song et al., 2021) 的工作提出了一个新的概念,虚幻人脸重演(pareidolia face reenactment),即目标人脸不是常规的人脸,而是卡通、树皮、机器人、姜饼人等“幻想”出来的人脸。这引发了两个新的挑战,即形状差异和纹理差异。形状差异指的是非常规人脸在重演的过程中,可能会出现面部轮廓特异、五官错位等问题。例如,机器人可能有特异数目的眼睛、嘴巴等。纹理差异指的是如树皮、金属、食物等往往具有与人类皮肤相差甚远的纹理,这就使得重演后的五官部分可能会出现纹理不匹配的瑕疵。

在这项工作 (Song et al., 2021) 中,研究者提出了一种新的参数化无监督重演算法(parametric unsupervised reenactment algorithm,PURA)来解决这两个挑战。通过将人脸重演分解为三个过程:形状建模、运动转移和纹理合成,并有针对性地引入了三个关键部分,即参数化形状建模(parametric shape modeling,PSM)、扩展运动转移(expansionary motion transfer,EMT)和无监督纹理合成器( unsupervised texture synthesizer,UTS),以克服罕见的脸部变异所带来的问题。所提出的参数化无监督重演算法框架如图 图4.4.5 所示。

图4.4.5 参数化无监督重现算法框架 (Song et al., 2021)¶

在PURA重演方法中,参数化建模基于的是贝塞尔曲线(Bezier curves)。为了表征人脸的形状同时又不受比例和旋转的影响,PURA用模板对齐算法(template alignment algorithm) (Segal et al., 2009) 将人脸\(H\)仿射到FLAME (Li et al., 2017) 的通用头部模型\(F\)上,所对齐的面部边界将用于后续的形状建模。在人脸形状建模阶段,通过提取并连接人脸\(H\)的68个3D地标,我们可以得到不同人脸部位的边界集合\(\mathcal{S}_{H}=\left\{C_{i}^{H}\right\}_{i=1}^{N}\)。\(\mathcal{S}_{H}\)包含\(N_H\)个分支(比如,嘴的边界可以分为四个分支:上下嘴唇的内外边界),每个分支\(C_{i}^{H}\)用高阶复合贝塞尔曲线进行拟合,从而转化为控制点。对所参考的FLAME头部模型\(F\)也进行类似的操作。分别进行参数化后,可以得到人脸\(H\),头部模型\(F\),虚幻人脸\(P\)的面部部位边界控制点\(\mathcal{P}_{H}\)、\(\mathcal{P}_{F}\)、\(\mathcal{P}_{P}\),用于随后动作控制器的计算。

从人脸中提取的动作表示可以记作\(\mathcal{M}_{s}\),定义为控制点\(\mathcal{P}_{H}\)与\(\mathcal{P}_{F}\)的状态:

(4.4.14)¶\[\mathcal{M}_{\mathbf{S}}=\bigcup_{i=1}^{N}\left\{\left(\frac{\hat{x_{j}^{i}}}{\overline{x_{j}^{i}}}, \frac{\hat{y_{j}^{i}}}{\overline{y_{j}^{i}}}, \frac{\hat{z_{j}^{i}}}{\overline{z_{j}^{i}}}\right)\right\}_{j=0}^{h_{i}}.\]

\(\mathcal{M}_{S}\)将对虚幻人脸的面部的边界\(\mathcal{S}_{P}\)进行动画处理,即运动控制器。一般来说,虚幻人脸的边界分支是人脸边界的一个子集。通过控制点\(\mathcal{P}_{P}\)对边界\(\mathcal{S}_{P}\)进行参数化:\(\mathcal{P}_{P}=\bigcup_{i=1}^{N_{P}} \mathcal{P}_{B_{i}}=\bigcup_{i=1}^{N_{P}}\left\{\left(x_{j}^{i}, y_{j}^{i}, z_{j}^{i}\right)\right\}_{j=0}^{t_{i}}\),其中\(N_{P}\)是分支的号码,\(t_{i}\)是第\(i\)个分支的曲线序列,\(B_{i}\)为虚幻人脸的曲线。

由于\(B_{i}\)可能与响应人脸曲线\(B_{i}^{H}\)有很大的不同,在\(t_{i}\)\(h_{i}\)进行线性插值处理,并将处理后的运动控制器记为\(\mathcal{M}_{S}^{e}\)。最后,虚幻人脸的面部将由\(\mathcal{M}_{S}^{e}\)进行动画化处理:

(4.4.15)¶\[\mathcal{P}_{\mathbf{P}}^{\prime}=\mathcal{M}_{\mathbf{S}}^{e} \otimes \mathcal{P}_{\mathbf{P}}=\bigcup_{i=1}^{N_{P}}\left\{\left(\frac{\hat{x}_{j}^{i}}{\overline{x_{j}^{i}}} x_{j}^{i}, \frac{\hat{y}_{j}^{i}}{y_{j}^{i}} y_{j}^{i}, \frac{\hat{z}_{j}^{i}}{\overline{z_{j}^{i}}} z_{j}^{i}\right)\right\}_{j=0}^{t_{i}}.\]

通过上面的运动控制器能够复合贝塞尔曲线的控制点来转移面部边界处的运动,但这么转移的运动是局部的,从而需要采用扩展运动转移(EMT)来对运动进行扩展。将曲线\(B_{i}\)处的运动记为运动种子\(\mathcal{M}_{B_{i}}^{e}\),则\(\left\{\mathcal{M}_{B_{i}}^{e}\right\}_{i=1}^{N_{P}}\)记为运动种子集。所提出的扩展运动转移策略沿着其与复合贝塞尔曲线正交的方向衰减运动种子。来自运动种子\(\mathcal{M}_{B_{i}}^{e}\)的衰减运动\(\mathcal{M}_{B_{i}\left(\omega_{i}, \tau_{i}\right)}^{e}\)可以定义如下:

(4.4.16)¶\[\mathcal{M}_{B_{i}\left(\omega_{i}, \tau_{i}\right)}^{e}=\lambda\left(\omega_{i}\right) \cdot \mathcal{M}_{B_{i}\left(1, \tau_{i}\right)}^{e}, \; \mathcal{M}_{B_{i}\left(1, \tau_{i}\right)}^{e} \in \mathcal{M}_{B_{i}}^{e},\]

其中,\(\lambda\left(\omega_{i}\right)\)表示\(\omega_{i}\)的衰减参数。虚幻人脸中的像素\(P\)会从许多运动种子中接收到衰减运动信息,将\(P\)处的衰减运动的组合表示为\(\mathcal{M}_{P}^{e}\)。为了对虚幻人脸\(P\)进行动画化处理,PURA通过所提出的扩展运动转移从运动种子构建整个幻想面部(pareidolia face)的全局运动。定义\(G(·)\)为返回输入图像像素网格的函数,定义运动场(motion field)\(\mathcal{M}^{e}=\left\{\mathcal{M}_{\mathbf{p}}^{e}\right\}_{\mathbf{p} \in G(\mathbf{P})}\),对于每个\(P\)中的像素,运动场可以将其驱动到一个新的地址。

最后一步无监督纹理合成器则使用没有标注的自然图像来训练一个自动编码器,通过将自动编码器网络与特征变形层相结合,逐步将运动转换为纹理。通过上述的模块,所提出的PURA框架能够将静态的虚幻人脸转化为动态的人脸,克服幻想面部所带来的显著差异。

表情重演仅是人脸重演的一个部分,还有许多工作希望能够同时进行人脸生成领域的两项工作,即面部身份变换和表情迁移。例如FSGAN (Nirkin et al., 2022) 进行的人脸交换工作。FSGAN的具体流程是:(1)互换生成器\(G_r\)估算被交换的脸与其分割掩码基于热图编码的脸部地标,\(G_s\)估值源图像的分割掩码;(2)画中画生成器\(G_c\)对缺失部分进行修复并得出完整的交换脸;(3)使用分割掩码及混合发生器\(G_b\)混合上述结果,生成最终的输出。通过以上步骤,FSGAN能够降低对数据的依赖和提高模型在不同人物间的泛化性。

基于Transformer的人脸伪造。 基于Transformer的伪造人脸生成工作也有很多,如Xu (Xu et al., 2022) 提出的TransEditor,便是一种基于Transformer 的双空间生成对抗网络,可以进行高度可控的面部编辑。通过引入跨空间注意力机制,两个潜在空间进行有意义的交互。此外,该工作利用TransEditor提供的可控性提出了一种灵活的双空间图像编辑策略。TransEditor的框架如图 图4.4.6 所示。

图4.4.6 TransEditor (Xu et al., 2022) 及所采用的StyleGAN2 (Karras et al., 2020) 的架构图¶

具体来说,\(P\)和\(Z\)是两个具有独立映射的潜在空间,它们分别用来完成生成器的输入特征图和逐层样式调制。图像的生成过程可以表示为:

(4.4.17)¶\[x=\operatorname{TransEditor}( z, p).\]

为了确定这两个空间与对应的生成器的集成,在每一层中的生成过程可以表示为:

(4.4.18)¶\[\boldsymbol{F}_{i+1}=\operatorname{ModuConv} \left(\boldsymbol{T}_{\boldsymbol{w}_{i}}, \boldsymbol{F}_{i}\right),\]

其中,\(\boldsymbol{F}_{i}\)表示前\(i\)-1层生成的特征图,\(\boldsymbol{T}_{\boldsymbol{w}_{i}}\)是由层样式编码\(\boldsymbol{w}_{i}\)决定的调制调解过程。具体地,\(\boldsymbol{T}_{\boldsymbol{w}_{i}}\)通过以下方式来对第\(i\)层的卷积模块的参数进行放缩:

(4.4.19)¶\[\boldsymbol{T}_{\boldsymbol{w}_{i}}: w_{i j k}^{\prime \prime}=w_{i j k}^{\prime} / \sqrt{\sum_{j, k} w_{i j k}^{\prime}+ \epsilon},\]

其中,\(w_{i j k}^{\prime}\)=\(s_{i}\)*\(\boldsymbol{w}_{ijk}\),同时\(j\)、\(k\)为卷积项。\(F_{i}\)将由放缩参数\(\boldsymbol{w}^{\prime\prime}\)进行卷积。虽然在每一层都进行了调制与解调,但每个特征图都是前一层的卷积结果。因此初始特征图\(F_{0}\)是整个生成过程的基础。由此带来了更多的可控性,能够将学习到的常量输入替换为来自\(P\)空间的潜在输入。

此外,对于整个潜在空间的输入,重塑(reshaping)一个单采样向量本质上是纠缠在一起的。因此两个子空间\(Z\)和\(P\)由单独的子向量构成。为了进一步获得更好的解纠缠属性,利用对偶空间的单独映射可以表示如下:

(4.4.20)¶\[\begin{split}\begin{array}{l}z^{+}= {\left[\begin{array}{c}z_{1}^{+} \\z_{2}^{+} \\\ldots \\z_{n}^{+}\end{array}\right]=\left[\begin{array}{cccc}M_{ z_{1}} 0 \ldots 0 \\0 M_{ z_{2}} \ldots 0 \\\ldots \\0 0 \ldots M_{ z_{n}}\end{array}\right]\left[\begin{array}{c}z_{1} \\z_{2} \\\ldots \\z_{n}\end{array}\right] } \\\boldsymbol{p}^{+}=\left[\begin{array}{c}\boldsymbol{p}_{1}^{+} \\\boldsymbol{p}_{2}^{+} \\\ldots \\\boldsymbol{p}_{n}^{+}\end{array}\right]=\left[\begin{array}{cccc}M_{\boldsymbol{p}_{1}} 0 \ldots 0 \\0 M_{\boldsymbol{p}_{2}} \ldots 0 \\\ldots \\0 0 \ldots M_{\boldsymbol{p}_{n}}\end{array}\right]\left[\begin{array}{c}\boldsymbol{p}_{1} \\\boldsymbol{p}_{2} \\\ldots \\\boldsymbol{p}_{n},\end{array}\right]\end{array}\end{split}\]

其中,每个\(M_{ z_{i}}\)或是\(M_{\boldsymbol{p}_{i}}\)都是一个多层感知机(multilayer perceptron,MLP)模块。

这两个分离的空间,通过基于交叉注意力的交互模块进行相关联。映射的潜在编码\(z^{+}\)被作为关键字\(K\)以及价值\(V\),潜在编码\(\boldsymbol{p}^{+}\)作为查询\(Q\)。第\(i\)层Transformer中的交互可以写为:

(4.4.21)¶\[\begin{split}\begin{array}{c}Q=\boldsymbol{p}^{+} W^{Q}, \; K=\left( z^{+}\right)^{l} W^{K}, \; V=\left( z^{+}\right)^{l} W^{V} \\\left( z^{+}\right)^{l+1}=\operatorname{softmax}\left(\frac{Q K^{\top}}{\sqrt{d_{k}}}\right) V+\left( z^{+}\right)^{l},\end{array}\end{split}\]

其中,\(W^{Q}\)、\(W^{K}\)、\(W^{V}\)是线性投影矩阵,\(d_{k}\)是潜在编码的公共维数。\(\boldsymbol{p}^{+}\)查询的注意力过程将在\(z^{+}\)上运行。由于\(\boldsymbol{p}^{+}\)仅充当查询的作用,尽管\(z^{+}\)采用了\(\boldsymbol{p}^{+}\),两个空间依然是分离的。

TransEditor的图像编辑操作是在乘积空间\(\mathcal{Z}^{+} \times \mathcal{P}^{+}\)上进行的,双空间操作可以进一步表示如下:

(4.4.22)¶\[I_{\left(\mathcal{Z}^{+} \times P^{+}\right)}\left( z^{+}, \boldsymbol{p}^{+}\right)=\left(I_{\mathcal{Z}^{+}}\left( z^{+}\right), I_{\mathcal{P}^{+}}\left(\boldsymbol{p}^{+}\right)\right),\]

其中,\(z^{+}\in\mathcal{Z}^{+}\),\(\boldsymbol{p}^{+}\in\mathcal{P}^{+}\),\(I_{i}\)表示在空间\(i\)上的操作。

对于每个属性,使用SVM(支持向量机)分类器在两个分离的潜在空间中训练两个超平面,从而获得\(\mathcal{Z}^{+}\)空间中的法向量\(n_{z}\),\(\mathcal{P}^{+}\)空间中的法向量\(n_{p}\)。随后,对于采样获得的潜在编码\(z^{+}\)和\(\boldsymbol{p}^{+}\),可以通过沿\(n_{z}\)方向移动\(\lambda_{z}\)步和\(n_{p}\)方向移动\(\lambda_{p}\)步的方式获得新的潜在编码\(\left( z^{+}+\lambda_{z} * n_{z}, \boldsymbol{p}^{+}+\lambda_{p} * n_{p}\right)\)。对于仅完全包含在一个空间中的属性,则只在对应空间内进行编辑,而更加复杂一点的属性(如性别)则最好是同时使用这两个空间。

如果要对真实图像进行处理,则需要将图像反转回对偶的潜在空间。首先,使用特征金字塔(feature pyramid)提取输入真实图像的三级特征图。由于\(z^{+}\)空间具有分层结构,因此使用不同的特征来生成每个\(z_{i}^{+}\)。潜在编码\(\boldsymbol{p}^{+}\)仅映射自编码器中的最高级别特征,并作为生成器的初始特征输入注入。上述反转策略能够将真实图像映射到所训练的双潜在空间,可以应用线性潜在操作来执行双空间编辑。通过以上的方法,TransEditor能够实现采用双空间GAN来分离所编辑人脸的样式及具体内容。

基于人脸伪造技术,研究者们同时还构建了一系列的人脸篡改与伪造数据集,包括UADFV (Li et al., 2018) 、DFDC (Dolhansky et al., 2019) 等等。这些数据集的基本信息如 图4.4.7 所列。

图4.4.7 常用深度伪造数据集¶

4.4.2.2. 视频伪造¶

视频伪造是深度伪造的一个重要分支,与对图像篡改不同,视频伪造需要考虑更多的维度,如时序信息、不同主客体在画面上的相对位置变化、甚至更进一步的音频伪造等。

例如,在生成一个虚拟人物在运动的视频时,需要解决的一个问题就是如何生成合理的动作姿态,与目标人物的运动轨迹、力线、惯性等相符合。在这个问题上一个比较好的模型是一阶移动模型(first-order-motion) (Siarohin et al., 2019) ,它将视频的内容分为主体和动作,其中主体表示视频中出现的人物,而动作表示人物的行为。一阶移动模型包括两个主要模块:(1)运动估计模块,使用一组学习得到的关键点以及它们的局部仿生变换来预测密集的运动场;和(2)图像生成模块,结合从源图像中提取的外观和从驱动视频中得到的运动来模拟目标运动中出现的遮挡。通过上面的框架,一阶移动模型能够将一个随机向量序列映射成为连续的视频帧,最后合成视频。每个向量中的一部分表示主体,另一部分表示动作,在视频的生成过程中,表示主体的部分固定不变。一阶移动模型通过对外观和运动信息进行解耦,实现了通过运动模型推导出目标任务的合理姿势与动作。

如何生成高分辨率的伪造视频也是一个具有挑战性的问题。Tian (Tian et al., 2021) 等人基于GAN提出了一个框架MoCoGAN-HD,利用已有的图像生成器来渲染合成高分辨率视频。MoCoGAN-HD将视频合成问题看作是在预训练的图像生成器的潜在输出空间中寻找运动轨迹的问题。MoCoGAN-HD的主要部分是:(1)动作生成器,能够探查到期待的主体的运动轨迹,使其中的主体和动作解耦;和(2)跨域视频合成训练,在不同域的不相交数据集上训练图像生成器和运动生成器,从而可以生成训练集中不存在的新视频内容。通过上面的框架,MoCoGAN-HD解决了生成高清伪造视频性能较低、精度不够的问题。MoCoGAN-HD的结构如图 MoCoGAN-HD的网络架构 Tian2021MocoGAN-HD 所示。

图4.4.8 MoCoGAN-HD的网络架构 (Tian et al., 2021)¶

具体来说,MoCoGAN-HD采用了预训练的图像生成器(StyleGAN2 (Karras et al., 2020) ),动作生成器\(G_{M}\)和图像生成器\(G_{I}\)采用两个LSTM网络实现,并用来预测潜在的动作轨迹\(z=\left\{ z_{1}, z_{2}, \ldots, z_{n}\right\}\),其中\(n\)是所合成视频的帧数。图像生成器\(G_{I}\)能够根据运动轨迹合成每个单独的帧。所生成的视频序列\(\widetilde{V}\)由\(\tilde{ v}=\left\{\tilde{ x}_{1}, \tilde{ x}_{2}, , \tilde{ x}_{n}\right\}\)给出。对于每个合成帧\(\tilde{ x}_{t}\),都有\(\tilde{ x}_{t} = G_{I}( z_{t})\)。为了训练动作生成器\(G_{M}\)来发现所需的运动轨迹,应用视频判别器来使得生成的运动模式与训练视频的运动模式相似,以及强制帧内容在时间上一致。

动作生成器\(G_{M}\)使用输入编码\(z_{1}\in Z\)来预测连续的潜在编码,潜在空间\(Z\)也由图像生成器共享。形式上,\(G_{M}\)由一个LSTM编码器\(LSTM_{enc}\)及LSTM解码器\(LSTM_{dec}\)组成,分别对\(z_{1}\)进行编码以获得初始隐藏状态以及递归地估计\(n\)-1个连续地隐藏状态:

(4.4.23)¶\[\begin{split}\begin{array}{c}h_{1}, c_{1}=\operatorname{LSTM}_{\mathrm{enc}}\left( z_{1}\right) \\h_{t}, c_{t}=\operatorname{LSTM}_{\mathrm{dec}}\left( \epsilon_{t},\left( h_{t-1}, c_{t-1}\right)\right),\end{array}\end{split}\]

其中,\(h\)和\(c\)分别表示隐藏状态与单元状态,\(\epsilon_{t}\)是从正态分布采样的噪声向量,用来对时刻\(t=2,3, \ldots, n\)处的运动多样性进行建模。

运动解耦。 为了使用运动残差(motion residual)来估计运动轨迹,将运动残差建模为潜在空间中一组可解释方向的线性组合。首先对来自\(Z\)的\(m\)个随机采样的潜在向量进行主成分分析以获得基础\(V\),然后使用\(h_{t}\)和\(V\)来估计从前一帧\(z_{t-1}\)到当前帧\(z_{t}\)的运动方向,可形式化定义如下:

(4.4.24)¶\[z_{t}= z_{t-1}+\lambda \cdot h_{t} \cdot v,\]

其中,隐藏状态\(h_{t}\in [-1,1]\),\(\lambda\)用来控制残差给定的步长。

运动多样性。 引入噪声向量\(\epsilon_{t}\)来控制运动多样性后,会出现\(G_{M}\)无法从训练视频中捕获不同运动模式的问题,同时也无法从一个初始潜在编码来生成不同的视频。为了缓解这些问题,引入互信息损失\(\mathcal{L}_{m}\)来最大化隐藏向量\(h_{t}\)和噪声向量\(\epsilon_{t}\)间的互信息,定义如下:

(4.4.25)¶\[\mathcal{L}_{\text{M}}=\frac{1}{n-1} \sum_{t=2}^{n} \operatorname{sim}\left(H\left( h_{t}\right), \epsilon_{t}\right),\]

其中,\(\operatorname{sim}( u, v)= u^{T} v /\| u\|\| v\|\)表示\(u\)和\(v\)之间的余弦相似度,\(H\)是一个起映射函数作用的2层感知机。

生成器训练。 为了训练运动生成器\(G_{M}\),作者使用一个多尺度视频判别器\(D_{V}\)来判断视频序列是真实的还是合成的,同时\(D_{V}\)使用\(3D\)卷积层来更好地模拟时间动态。MoCoGAN-HD将输入视频序列分成小的\(3D\)块(patch),然后将每个补丁分类为真或者假,在输入序列上平均这些块的预测可以得到最终输出。 此外,为了实现更稳定的训练,输入视频序列中的每一帧都以第一帧为条件,因为它属于预训练图像生成器的分布。生成器\(G_{M}\)和判别器\(D_{V}\)通过以下对抗损失进行训练:

(4.4.26)¶\[\mathcal{L}_{D_{\text{V}}}=\mathbb{E}_{ v \sim p_{v}}\left[\log D_{\text{V}}( v)\right]+\mathbb{E}_{ z_{1} \sim p_{z}}\left[\log \left(1-D_{\text{V}}\left(G_{\text{I}}\left(G_{\text{M}}\left( z_{1}\right)\right)\right)\right)\right].\]

通过以上训练的动作生成器,MoCoGAN-HD将运动建模为传递给图像生成器及生成单个帧的连续潜在编码的残差,可以更高效地生成潜在的运动轨迹,从而能够生成在时间上保持一致的高质量帧,进而生成高清的运动伪造视频。

图4.4.9 DI-GAN的生成器与鉴别器 (Yu et al., 2022)¶

除了生成高清视频之外,如何生成高质量的长视频也是一个挑战的问题。Yu等人 (Yu et al., 2022) 基于GAN提出了DI-GAN,它通过将隐式神经表示(implicit neural representation,INR)编码到参数化神经网络中,实现了利用视频的隐式神经表示来动态感知。具体的,DI-GAN基于INR的视频生成器 图4.4.9 (a),通过不同的方式来操作空间和时间坐标来改善生成动作的质量 图4.4.9 (b)。通过上述方法,DI-GAN能在不观察整个长序列视频帧的情况下高效识别非自然运动,从而节约了生成高质量长视频所需的资源消耗。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有